﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FitnessMVC.Data
{
    public interface IFitnessRepository
    {
        User GetUserByEmail(string email);
        User GetUserByUserId(Guid userID);
        User GetUserByName(string name);
        void DeleteUser(User u);
        void DeleteUser(Guid userID);
        
        UserProfile GetUserProfile(Guid userID);
        UserProfile GetUserProfile(int profileID);
        UserProfile GetUserProfile(string userName);
        void UpdateUserProfile(UserProfile up);
        void DeleteUserProfile(UserProfile up);
        void AddUserProfile(UserProfile up);
        IQueryable<UserProfile> FindUserProfileByName(string name);
        IQueryable<UserProfile> FindSimilarProfiles(UserProfile up);
        IQueryable<UserProfile> GetAllProfiles();
        
        IQueryable<User> GetUserBuddies(string userName);
        bool AreUsersBuddies(string user1Name, string user2Name);

        UserPicture GetUserPicture(int picID);
        IQueryable<UserPicture> GetUserPictures(string userName);
        void UpdateUserPicture(UserPicture pic);
        void DeleteUserPicture(UserPicture pic);
        void DeleteUserPicturesByUserId(Guid userId);
        void AddUserPicture(UserPicture pic);
        IQueryable<UserPicture> FindUserPictureByUser(Guid userID);
                
        void Save();



        void SetUserProfilePic(string userName, UserPicture pic);
    }
}
